package com.offcn.canal.listener;


import com.alibaba.otter.canal.protocol.CanalEntry;
import com.offcn.feign.page.PageFeign;
import com.xpand.starter.canal.annotation.CanalEventListener;
import com.xpand.starter.canal.annotation.UpdateListenPoint;
import org.springframework.beans.factory.annotation.Autowired;

@CanalEventListener
public class PageEventListener {

    @Autowired
    private PageFeign pageFeign;

    @UpdateListenPoint(schema = "dongyimaidb",table = "tb_goods")
    public void onAuditStatusChange(CanalEntry.RowData rowData){
        // 分析 什么动作属于审核通过的状态？
        // 修改之前 被修改的auditStatus的值不是1，修改之后，被修改的auditStatus的值是1
        // 记录被修改的goodsId
        String goodsId = "";
        for (CanalEntry.Column column : rowData.getBeforeColumnsList()) {
            if (column.getName().equals("id")) {
                goodsId = column.getValue();
            }
            // 修改前的状态是1 ==> 表示修改之前已经是审核通过的状态
            if (column.getName().equals("audit_status") && column.getValue().equals("1")){
                // 修改之前 audit_status 已经是1，已经是审核通过的状态
                return ;  // 结束方法运行
            }
        }

        // 修改后的记录
        for (CanalEntry.Column column : rowData.getAfterColumnsList()) {
            if (column.getName().equals("audit_status") && column.getValue().equals("1")){
               // 审核通过的操作
                pageFeign.createHtml(Long.valueOf(goodsId));
            }
        }
    }

}
